Declarative Programming Techniques for Many-Core Architectures
نویسنده
چکیده
Future manycore architectures are likely to have heterogeneous computing resources which will include conventional CPUs as well as variants of today’s GPUs and reconfigurable logic like FPGAs. Many of the techniques that the reconfigurable computing community has championed will find new applications in mainstream applications. One challenge posed by such manycore architectures is the requirement to target multiple parallel computing resources from a single description (or code). This paper proposes a design methodology for the specification and implementation of data parallel computations that can be mapped to either circuits on FPGAs or pixel-shader code on GPUs from exactly the same description. These descriptions exploit higher order combinators and polymorphism to provide powerful glue for composing data parallel descriptions in a generic way. We present two implementations of these combinations: one in F# which is a variant of the ML functional language and the other in the C# language which uses generics and C# delegates to achieve the effect of higher order combinators. We present the results of implementations that execute on Virtex FPGAs and ATI graphics cards.
منابع مشابه
Using Rule-Based Concepts as Foundation for Higher-Level Agent Architectures
Declarative programming using rules has advantages in certain application domains and has been successfully applied in many real world software projects. Besides building rule-based applications, rule concepts also provide a proven basis for the development of higher-level architectures, which enrich the existing production rule metaphor with further abstractions. One especially interesting app...
متن کاملDistributed S-Net High-Level Message Passing without the Hassle
S-NET is a declarative coordination language and component technology primarily aimed at modern multi-core/many-core chip architectures. It builds on the concept of stream processing to structure dynamically evolving networks of communicating asynchronous components, which themselves are implemented using a conventional language suitable for the application domain. We sketch out the design and ...
متن کاملHeterogeneous Programming with Single Operation Multiple Data
Heterogeneity is omnipresent in today’s commodity computational systems, which comprise at least one multi-core Central Processing Unit (CPU) and one Graphics Processing Unit (GPU). Nonetheless, all this computing power is not being harnessed in mainstream computing, as the programming of these systems entails many details of the underlying architecture and of its distinct execution models. Cur...
متن کاملDistributed S-Net
S-NET is a declarative coordination language and component technology primarily aimed at modern multicore/many-core chip architectures. It builds on the concept of stream processing to structure dynamically evolving networks of communicating asynchronous components, which themselves are implemented using a conventional language suitable for the application domain. We sketch out the design and i...
متن کاملImplementing Network Protocols as Distributed Logic Programs
Declarative networking [2, 4, 3, 1] is an application of database query-language and processing techniques to the domain of networking. Declarative networking is based on the observation that network protocols deal at their core with computing and maintaining distributed state (e.g., routes, sessions, performance statistics) according to basic information locally available at each node (e.g., n...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007